import { Module } from '@nestjs/common';
import { ColorController } from './color.controller';
import { ColorService } from './color.service';
import { Connection } from './connection';
import { ColorProductionService } from './colorProductionService';
import { ColorDevelopmentService } from './colorDevelopmentService';

@Module({
  controllers: [ColorController],
  // providers: [ColorService],
  providers: [
    {
      provide: 'CONNECTION', // 将一个字符串值令牌（'CONNECTION'）与从外部文件导入的现有 Connection 对象关联起来。
      // useValue: new Connection(),
      // useClass: Connection,
      useClass:
        process.env.NODE_ENV === 'development'
          ? ColorDevelopmentService
          : ColorProductionService,
    },
  ],
})
export class ColorModule {}

// 一直使用(class 类名)作为提供者令牌（即 providers 数组中列出的提供者里 provide 属性的值），这与基于构造函数的注入使用的标准模式相匹配，其中令牌也是类名。
// 基于非类的提供者令牌，有时，可能需要使用字符串或符号作为 DI 令牌的灵活性
